# Задачник 

_Задание 0_

 Вводятся номера телефонов в одну строчку через пробел с разными кодами стран:
` +7, +6, +2, +4 и т.д.` 

Необходимо составить словарь d, где ключи - это коды `+7, +6, +2 и т.п.`, 
а значения - список номеров (следующих в том же порядке, что и во входной строке) с соответствующими кодами. 


Входные данные:
```
+71234567890 +71234567854 +61234576890 +52134567890 +21235777890 +21234567110 +71232267890
```
Выходные данные:
```
('+2', ['+21235777890', '+21234567110']) ('+5', ['+52134567890']) ('+6', ['+61234576890']) ('+7', ['+71234567890', '+71234567854', '+71232267890'])

```

_Задание 1_ 

Вводятся имена студентов в одну строчку через пробел.
На их основе формируется кортеж. 
Отобразите на экране все имена из этого кортежа, которые содержат фрагмент "ва" (без учета регистра). 

Имена выводятся в одну строчку через пробел в нижнем регистре (малыми буквами).
Входные данные:
```
Петя Варвара Венера Василиса Василий Федор
```
Выходные данные:
```
варвара василиса василий
```


_Задание 2_

Лишний символ.
Робот отправляет сообщения. 
Есть только две проблемы – иногда символы в каждом сообщении перемешиваются, и всегда добавляется ровно один лишний символ. Напишите функцию, которая принимает две строки – исходное корректное сообщение и поврежденное доставленное, – и находит лишний символ.


#Пример ввода:
```
スーパーハカー
スーパーハッカー
```
    

#Пример вывода:
```
ッ
```

_Задание 3_

Вводится натуральное число n. Необходимо сформировать с помощью генератора кортеж, состоящий из делителей числа n (включая и само число n). Результат вывести на экран в одну строку через пробел.
Входные данные:
10
Выходные данные:
1 2 5 10



_Задание 4_

Последовательность чисел Фибоначчи задается рекуррентным соотношением:

```
F(1) = 1
F(2) = 1
F(n) = F(n–2) + F(n–1), при n >2, где n – натуральное число.
````
Чему равно восьмое число в последовательности Фибоначчи?

В ответе запишите только натуральное число. 

_Задание 5_

Вводится список городов в одной строке. 

Необходимо с помощью list comprehension сформировать список lst, содержащий вложенные списки из пар:
<город> <численность населения>
Численность населения - целое число в тыс. человек. Вывести результат на экран 
Входные данные:
```
Москва 15000 Уфа 1200 Самара 1090 Казань 1300
```

Выходные данные:
```
[['Москва', 15000], ['Уфа', 1200], ['Самара', 1090], ['Казань', 1300]]
```
А как преобразовать список списков с словарь


_Задание 6_

Объявите функцию, которая принимает строку и заключает ее в указанный тег. 
Тег определяется формальным параметров tag с начальным значением в виде строки "h1". 
Например, мы передаем строку 

```
"Hello Python"
```
и заключаем в тег "h1". 
На выходе должны получить строку :
```
<h1>Hello Python</h1>
```

То есть, сначала открывается тег `<h1>`, а в конце строки - закрывается `</h1>`. 

И так для любых указанных тегов.

После объявления функции прочитайте (с помощью функции input) строку и дважды вызовите функцию (с выводом результата ее работы на экран):
- первый раз только со строкой
- второй раз со строкой и именованным аргументом tag со значением 'div'.
Входные данные
Работаем с функциями
Выходные данные:

```html
<h1>Работаем с функциями</h1>
<div>Работаем с функциями</div>
```


_Задание 7_

Объявите функцию с именем `get_rect_value`, которая принимает два аргумента (два числа) и еще один формальный параметр `type` с начальным значением 0. Если параметр type равен нулю, то функция должна возвращать периметр прямоугольника, а иначе - его площадь.

_Задание 8_ 

Объявите функцию с именем `check_password`, которая принимает аргумент - строку (пароль) и имеет один формальный параметр `chars` с начальным значением в виде строки `$%!?@#`. 

Функция должна проверять: есть ли в пароле хотя бы один символ из chars и что длина пароля не менее 8 символов. 

Если проверка проходит, то функция возвращает `True`, иначе - `False`.
P.S. Вызывать функцию не нужно, только объявить.

Входные данные
```
12345678!
```
Выходные данные:
```
True
```

_Задание 9_

Имеется файл `fruit.txt` со следующим содержимым:

```
Апельсин маракуйя папайя айва Яблоко
апельсин яблоко ананас банан персик Слива
Банан груша слива виноград авокадо Цитрон
Слива Груша яблоко мандарин цитрон
лимон Лайм апельсин ананас персик айва 
Хурма киви хурма манго авокадо лайм
Нектарин Инжир гранат Папайя Гранат
```
    
Напишите программу, которая подсчитывает, сколько раз название каждого фрукта встречается в тексте.

Вывод:

```       
Названия этих фруктов встречаются в тексте:
"апельсин" - 3 раз(а)
"маракуйя" - 1 раз(а)
"папайя" - 2 раз(а)
"айва" - 2 раз(а)
"яблоко" - 3 раз(а)
"ананас" - 2 раз(а)
"банан" - 2 раз(а)
"персик" - 2 раз(а)
"слива" - 3 раз(а)
"груша" - 2 раз(а)
"виноград" - 1 раз(а)
"авокадо" - 2 раз(а)
"цитрон" - 2 раз(а)
"мандарин" - 1 раз(а)
"лимон" - 1 раз(а)
"лайм" - 2 раз(а)
"хурма" - 2 раз(а)
"киви" - 1 раз(а)
"манго" - 1 раз(а)
"нектарин" - 1 раз(а)
"инжир" - 1 раз(а)
"гранат" - 2 раз(а)
```


_Задание 10_

Имеются два файла, `first.txt` и `second.txt`. В первом файле перечислены имена, во втором – должности:

Содержимое файла `first.txt`

        
Сергей Ковалев
Ирина Егорова
Никита Степанов
Марина Арефьева
Кирилл Евстегнеев
Елена Моисеева

    
Файл `second.txt`

        
мидл разработчик
девопс
тимлид
сеньор разработчик
продакт-менеджер
дизайнер

    
Напишите программу, которая открывает оба файла и выводит сведения о сотрудниках в следующем формате:

```      
Сотрудник Сергей Ковалев, должность - мидл разработчик
Сотрудник Ирина Егорова, должность - девопс
Сотрудник Никита Степанов, должность - тимлид
Сотрудник Марина Арефьева, должность - сеньор разработчик
Сотрудник Кирилл Евстегнеев, должность - продакт-менеджер
Сотрудник Елена Моисеева, должность – дизайнер
```

_Задание 11_

На складе лежат мешки различного веса и стоимости. Вес за мешок и стоимость записаны на как натуральные числа с списке. Отсортировать мешки по стоимости за кг, при равной стоимости первыми идут мешки с наименьшим весом

```
S = [
    [47, 470],
    [50, 600],
    [60, 480],
    [45, 540],
    [30, 300]
]
```

_Задание 12_

Имеется лог-файл `crm_log.txt` с информацией о времени входа пользователей в CRM-систему и о времени выхода. 
Напишите программу, которая определяет пользователей, работавших в системе более 4 часов, и записывает их имена и фамилии в файл `best_employees.txt`.

Пример лога `crm_log.txt`:

```     
Егор Тимофеев, 09:10, 16:50
Марина Абрамова, 12:00, 15:59
Никита Круглов, 09:10, 12:45
Анна Семенова, 08:10, 12:30
Юлия Сафонова, 10:10, 10:50
Михаил Колесников, 11:10, 12:10
```
    
Выходные данные в файле `best_employees.txt`:

```       
Егор Тимофеев
Анна Семенова
```
    
_Задание 13_

Напишите программу, которая получает от пользователя имя файла и возвращает следующие данные о его содержимом:

```
количество строк;
количество слов;
число символов без пробелов и точек.
```
   
Содержимое файла:

```      
1. Последнее королевство 2015
2. Рим 2005
3. Версаль 2015
4. Тюдоры 2007
5. Террор 2018
6. Человек в высоком замке 2015
7. Белая королева 2013
8. Братья по оружию 2001
9. Медичи 2016
10. Спартак 2010
```
    
Вывод:

```
Количество строк в файле series.txt: 10
Количество слов: 17
Число символов: 153
```